//
// DotNetNuke - http://www.dotnetnuke.com
// Copyright (c) 2002-2010
// by Perpetual Motion Interactive Systems Inc. ( http://www.perpetualmotion.ca )
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 
// documentation files (the "Software"), to deal in the Software without restriction, including without limitation 
// the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and 
// to permit persons to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions 
// of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 
// TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 
// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
// DEALINGS IN THE SOFTWARE.
//

using System.Web.UI.WebControls;
using DotNetNuke.Common.Lists;
using DotNetNuke.Common.Utilities;
using DotNetNuke.Entities.Users;
namespace DotNetNuke.UI.WebControls
{
	public class EditorInfo
	{
		private object[] _Attributes;
		private string _Category;
		private Style _ControlStyle;
		private PropertyEditorMode _EditMode;
		private string _Editor;
		private LabelMode _LabelMode;
		private string _Name;
		private bool _Required;
		private string _ResourceKey;
		private string _Type;
		private object _Value;
		private string _ValidationExpression;
		private bool _Visible = true;
		private UserVisibilityMode _Visibility;
		public EditorInfo()
		{
		}
		public object[] Attributes {
			get { return _Attributes; }
			set { _Attributes= value; }
		}
		public string Category {
			get { return _Category; }
			set { _Category= value; }
		}
		public Style ControlStyle {
			get { return _ControlStyle; }
			set { _ControlStyle= value; }
		}
		public PropertyEditorMode EditMode {
			get { return _EditMode; }
			set { _EditMode= value; }
		}
		public string Editor {
			get { return _Editor; }
			set { _Editor= value; }
		}
		public LabelMode LabelMode {
			get { return _LabelMode; }
			set { _LabelMode= value; }
		}
		public string Name {
			get { return _Name; }
			set { _Name= value; }
		}
		public bool Required {
			get { return _Required; }
			set { _Required= value; }
		}
		public string ResourceKey {
			get { return _ResourceKey; }
			set { _ResourceKey= value; }
		}
		public string Type {
			get { return _Type; }
			set { _Type= value; }
		}
		public object Value {
			get { return _Value; }
			set { _Value= value; }
		}
		public string ValidationExpression {
			get { return _ValidationExpression; }
			set { _ValidationExpression= value; }
		}
		public bool Visible {
			get { return _Visible; }
			set { _Visible= value; }
		}
		public UserVisibilityMode Visibility {
			get { return _Visibility; }
			set { _Visibility= value; }
		}
		public static string GetEditor(int editorType)
		{
			string editor = "UseSystemType";
			if (editorType != Null.NullInteger) {
				ListController objListController = new ListController();
				ListEntryInfo definitionEntry = objListController.GetListEntryInfo(editorType);
				if ((definitionEntry != null) && (definitionEntry.ListName == "DataType")) {
					editor = definitionEntry.Text;
				}
			}
			return editor;
		}
		public static string GetEditor(string editorValue)
		{
			string editor = "UseSystemType";
			ListController objListController = new ListController();
			ListEntryInfo definitionEntry = objListController.GetListEntryInfo("DataType", editorValue);
			if (definitionEntry != null) {
				editor = definitionEntry.Text;
			}
			return editor;
		}
	}
}
